智能优化算法求解TSP问题--遗传算法

TSP问题基本概念

TSP问题即旅行商问题(TravelingSalesperson Problem)。该问题给定n个城市和两两城市之间的距离,要求确定一条经过各城市当且仅当一次的最短路线。其图论描述为:给定图G=(V, A),其中V为顶点集,A为各顶点相互连接组成的边集,已知各顶点间的连接距离,要求确定一条长度最短的Hamilton回路,即遍历所有顶点当且仅当一次的最短回路。

遗传算法的基本原理

遗传算法是一类随机优化算法,但它不是简单的随机比较搜索,而是通过对染色体的评价和对染色体中基因的作用,有效地利用已有信息来指导搜索有希望改善优化质量的状态。

标准遗传算法主要步骤可描述如下:

①  随机产生一组初始个体构成初始种群。

②  计算每一个体的适配值(fitnessvalue,也称为适应度)。适应度值是对染色体(个体)进行评价的一种指标,是GA进行优化所用的主要信息,它与个体的目标值存在一种对应关系。

③  判断算法收敛准则是否满足,若满足,则输出搜索结果;否则执行以下步骤。

④  根据适应度值大小以一定方式执行复制操作(也称为选择操作)。

⑤  按交叉概率pc执行交叉操作。

⑥  按变异概率pm执行变异操作。

⑦  返回步骤②。

标准遗传算法流程图下图所示。

 


1、设计算法的编码方式

路径编码是描述TSP解的最常用的一种策略。所谓路径编码,即直接采用城市在路径中的位置来构造用于优化的状态。

例如:设九城市TSP问题的路径为5-4-1-7-9-8-6-2-3,

对应的路径编码为:(5 4 1 7 9 8 6 23)。

这种编码形式自然直观,易于加入启发式信息,也有利于优化操作的设计。

2、设计遗传算法的适应度函数

对个体i,计算与路径编码相对应的距离,设为di。显然距离值di越大,适应度值应越小。因此,适应度函数可定义为f=1/di

3、设计遗传算法的选择操作

选择是用来确定交叉个体,以及被选个体将产生多少个子代个体。它是基于适应度值计算基础上进行的。在被选集中,每个个体都有一个选择概率,这个概率由种群中个体的适应度及其分布决定。若某个个体i,其适应度为fi,则其被选取的概率表示为:。


4、设计遗传算法的交叉操作

在选择操作的基础上,根据一定的概率(称为交叉概率)进行交叉操作。交叉的目的是为了能够在下一代产生新的个体,它是遗传算法获取新的优良个体的最重要的手段。交叉操作中,把两个父个体的部分结构进行替换重组,生成新个体。根据个体编码方法的不同可以有不同的算法。

TSP问题中,交叉操作可设计如下:


遗传算法中并不是所有被选择的个体,都要进行交叉操作。交叉概率用于控制交叉操作的频率。概率太大时,种群中串的更新很快,使高适应度值的个体很快被破坏掉。概率太小时,交叉操作很少进行,使搜索停滞不前。

5、设计遗传算法的变异操作

同交叉操作一样,并不是所有被选择的个体,都要进行变异操作。变异概率是加大种群多样性的重要因素,但是概率太小就很难产生新个体,概率太大会使GA成为随机搜索。基于二进制编码的GA中,通常一个较低的变异率足以防止整个群体中任一位置的基因一直保持不变。

TSP问题中,变异操作可设计如下:


6、编写基于遗传算法的TSP问题求解程序


遗传算法的优点和缺点

遗传算法的优点:

与问题领域无关切快速随机的搜索能力;

搜索从群体出发,具有潜在的并行性,可以进行多个个体的同时比较;

搜索使用评价函数启发,过程简单;

使用概率机制进行迭代,具有随机性;

具有可扩展性,容易与其他算法结合。

遗传算法的缺点:

遗传算法的编程实现比较复杂,首先需要对问题进行编码,找到最优解之后还需要对问题进行解码;

另外三个算子的实现也有许多参数,如交叉率和变异率,并且这些参数的选择严重影响解的品质,而目前这些参数的选择大部分是依靠经验;

算法对初始种群的选择有一定的依赖性,能够结合一些启发算法进行改进;

算法的并行机制的潜在能力没有得到充分的利用,这也是当前遗传算法的一个研究热点方向。

现在

  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值